package busquedas;

import org.uqbar.commons.utils.Observable;

import despegar.utiles.Fecha;

/**
 * Para obtener los criterios de b�squeda, a modo de builder.
 * Por l�stima, tiene poco comportamiento, porque debe ser lo m�s general posible,
 * para las distintas aerol�neas.
 */
@Observable
public class CriteriosBusqueda {
	private Fecha fechaSalida = new NullFecha();
	private String destino;
	private String origen;
	private Boolean conEscalas = false;
	private FiltroOpcional filtroOpcional = new FiltroOpcionalBase();

	public String getDestino() {
		return destino;
	}

	public String getOrigen() {
		return origen;
	}

	public Fecha getFechaSalida() {
		return this.fechaSalida;
	}

	/**
	 * Los setters nos permiten hacer chaining.
	 */
	public CriteriosBusqueda setFechaSalida(Fecha fecha) {
		this.fechaSalida=fecha;
		return this;
	}

	public CriteriosBusqueda setDestino(String destino){
		this.destino = destino;
		return this;
	}
	
	public CriteriosBusqueda setOrigen(String origen){
		this.origen = origen;
		return this;
	}
	
	public CriteriosBusqueda setConEscalas(Boolean conEscalas) {
		this.conEscalas = conEscalas;
		return this;
	}

	public Boolean getConEscalas() {
		return conEscalas;
	}

	public CriteriosBusqueda setFiltroOpcional(FiltroOpcional filtroOpcional) {
		this.filtroOpcional = filtroOpcional;
		return this;
	}

	public FiltroOpcional getFiltroOpcional() {
		return this.filtroOpcional;
	}
}
